Intelligent management of one or more machines of a vehicle service center

ABSTRACT

The present disclosure relates to systems, non-transitory computer-readable media, and methods for dynamically allocating resources within a vehicle service center for vehicles within a service queue. In some embodiments, the disclosed systems can analyze services associated with vehicles to intelligently determine how to allocate resources within the vehicle service center. For example, based on the analysis of services, the disclosed systems can determine a task allocation that will allow vehicles in the service queue to progress through a set of sequential stations at a predefined progression rate. In addition, the disclosed systems can generate a component allocation indicating a distribution of one or more machines across the set of sequential stations, and then cause the one or more machines to complete one or more tasks in the time allotted by the predefined progression rate and in accordance with the task allocation and the component allocation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and priority to U.S. Provisional Application No. 62/840,293, filed Apr. 29, 2019. This application also relates to the subject matter disclosed in U.S. application Ser. No. 16/727,715, entitled VEHICLE SERVICE CENTER DISPATCH SYSTEM, and U.S. application Ser. No. ______, entitled INTELLIGENT MANAGEMENT OF ONE OR MORE DISPLAY DEVICES OF A VEHICLE SERVICE CENTER, each filed on the same day as the present application. The entire contents of the foregoing patent applications are incorporated herein by reference.

BACKGROUND

In recent years, popularity and usage of on-demand transportation matching systems have significantly grown. Indeed, the proliferation of web and mobile applications easily enable requesting individuals to request transportation from transportation providers. These on-demand transportation matching systems facilitate the completion of thousands and thousands of transportation requests each day. The provided transportation is dependent on the vehicles operated by transportation providers. The vehicles, in turn, require regular service in order to ensure that they can operate in a safe and efficient manner. However, traditional vehicle service centers (e.g., businesses that perform maintenance and other services on vehicles) suffer from a number of disadvantages, making them incompatible with the dynamic and demanding nature of on-demand transportation matching systems.

For example, traditional vehicle service centers are inefficient and prone to backlogs and delays. To illustrate, traditional service centers typically provide options for vehicle owners to make appointments ahead of time or arrive without an appointment. However, even for customers that make appointments beforehand, traditional vehicle service centers are notoriously prone to delays and almost never provide customers with reliable time estimates for completing the necessary services. Furthermore, the delays and unpredictability of traditional service centers are compounded by an inability to adapt to unforeseen circumstances or changes in services.

These and other disadvantages exist with respect to traditional vehicle service centers.

SUMMARY

This disclosure describes one or more embodiments of methods, non-transitory computer readable media, and systems that solve problems associated with conventional service centers. As will be described in more detail below, the disclosed systems can intelligently and dynamically manage resources (e.g., technicians, parts, and machines, such as robots and equipment) of a vehicle service center to ensure that vehicles are serviced efficiently and without the delays typical to traditional vehicle service centers. For example, the disclosed vehicle service center includes sequential stations, through which vehicles progress, stopping at each station, where tasks are performed in accordance with the services for the vehicles. The disclosed systems manage the resources of the vehicle service center to ensure that the vehicles progress through the sequential stations in accordance with a predefined progression rate (e.g., an amount of time vehicles spend at their stations before progressing to the next station or out of the vehicle service center).

For example, in one or more embodiments, a vehicle service system analyzes information associated with vehicles to be serviced at a vehicle service center comprising sequential stations through which vehicles progress in accordance with a predefined progression rate. For example, the vehicle service system can analyze information associated with services that will be performed on each of the vehicles (e.g., to identify tasks associated with the services). Based on the information associated with the vehicles and based on the predefined progression rate, the vehicle service system can determine an allocation of tasks to be performed at each of the sequential stations. For example, for a given stage of progression with a vehicle at each of the stations, the vehicle service system can determine which tasks will be performed at each of the stations for the respective vehicles. Based on the task allocation, the vehicle service system can determine how to allocate resources across the stations in order to complete the allocated tasks in the time allotted by the predefined progression rate. For example, the vehicle service system can determine how to allocate technicians as well as mechanical components—such as robots, equipment, or other machines—across the stations to complete the allotted tasks. In some embodiments, the vehicle service system determines an estimated progression rate for a given task allocation and a given resource allocation, and then compares the estimated progression rate to the predefined progression rate. Then, the vehicle service system can cause one or more machines to each complete one or more tasks in accordance with the task allocation and the resource allocation. Furthermore, the vehicle service system can dynamically adapt to changing conditions within the vehicle service center. For example, if completion of the tasks allotted to a particular station falls behind schedule, the vehicle service system can dynamically adjust the task allocation and/or resource allocation to ensure that the predefined progression rate is satisfied or that any failure to satisfy the predefined progression rate is minimized.

Accordingly, and as is explained in more detail below, the disclosed features resolve many of the inefficiencies and uncertainties associated with conventional vehicle service centers.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of an environment for implementing a vehicle service system in accordance with one or more embodiments.

FIG. 2A illustrates a service queue that a vehicle service system dynamically manages in accordance with one or more embodiments.

FIG. 2B illustrates a listing of tasks specific to services for vehicles in accordance with one or more embodiments.

FIG. 2C illustrates resource allocations including task allocations and component allocations in accordance with one or more embodiments.

FIG. 2D illustrates a rendered implementation of a resource allocation in accordance with one or more embodiments.

FIG. 2E illustrates a rendered implementation of a resource reallocation in accordance with one or more embodiments.

FIG. 3 illustrates a schematic diagram of a vehicle service system in accordance with one or more embodiments.

FIG. 4 illustrates a flowchart of a series of acts in a method for allocating resources of a vehicle service center in accordance with one or more embodiments.

FIG. 5 illustrates a block diagram of an example computing device in accordance with one or more embodiments.

FIG. 6 illustrates an example network environment of a transportation matching system in accordance with one or more embodiments.

DETAILED DESCRIPTION

This disclosure describes one or more embodiments of a vehicle service center and corresponding vehicle service system that dynamically and flexibly manages resources within the vehicle service center to improve its efficiency. As disclosed in more detail below, a vehicle service center can include a set of sequential stations through which vehicles proceed in a sequential manner (e.g., starting at a first station, then moving to a second station, and so on) with various services being performed at each station. In some embodiments, the disclosed vehicle service system can intelligently allocate tasks and resources to ensure that the vehicles progress through the stations in accordance with a predefined progression rate. Accordingly, the vehicle service system positions and allocates resources at each of the stations to assist in completing the allocated tasks.

To illustrate, according to an example embodiment, a vehicle service system analyzes information associated with vehicles to be serviced at a vehicle service center. Based on the analyzed information and a predefined progression rate associated with the vehicle service center, the vehicle service system can determine an allocation of tasks to be performed at each of the stations. In addition, the vehicle service system can determine an allocation of resources necessary to complete the allocated tasks in accordance with the predefined progression rate. The resource allocation can include an allocation of technicians, as well as an allocation of one or more machines (e.g., robots or equipment). The vehicle service system can then cause the one or more machines to each complete one or more tasks in accordance with the task allocation.

As mentioned above, according to the embodiments disclosed herein, a vehicle service center includes a set of sequential stations through which vehicles progress, stopping at each station. In some embodiments, the stations are arranged in a line, end to end. A vehicle to be serviced enters the vehicle service center into a first station, and then moves station to station receiving services at each station until it leaves the last station in the sequence. In some embodiments, the vehicle service center includes three stations. However, the vehicle service center can include any number of stations arranged in a sequence. Each of the stations can be equipped with various tools, parts, and equipment for performing service tasks. The stations can be equipped differently, so that different services can be performed at each station, or the stations can be equipped to each perform any available service. Additional details regarding the vehicle service center and its stations are provided below.

As further mentioned above, the vehicle service system can intelligently allocate tasks and resources in order to ensure that vehicles progress through the stations of the vehicle service center in accordance with a predetermined progression rate. As used herein, the term “progression rate” refers to a rate at which vehicles progress through the stations of a vehicle service center. In other words, the progression rate represents how much time vehicles spend at a station before progression on to the next station (or out of the vehicle service center if a vehicle is in the last station). In some embodiments, the progression rate is an average progression rate for a vehicle across multiple stations and/or multiple vehicles across one or more stations. In other embodiments, a progression rate can represent a rate for a single vehicle at a single station or for a single stage of progression by multiple vehicles across multiple stations. The vehicle service system can monitor the completion of services at each station of the vehicle service center to determine the progression rate of one or more vehicles or for the vehicle service center in general. Furthermore, the vehicle service system can determine multiple progression rates corresponding to discrete periods of time (e.g., each hour, each day, each week, or each month).

As used herein, the term “predefined progression rate” refers to a target or maximum progression rate that has been set for a vehicle service center. For example, the predefined progression rate can define a per-station maximum amount of time to perform services on one or more vehicles. The predefined progression rate can apply to every station and every vehicle, or can be an average across multiple stations and multiple vehicles. In some embodiments, the predefined progression rate is the same for each station so that the vehicles progress consistently from station to station without being delayed by vehicles in the other stations. Example predefined progression rates include 5 minutes per station, 6 minutes per station, 7 minutes per station, 8 minutes per station, 9 minutes per station, and 10 minutes per station, although the predefined progression rate can be any progression rate. In some embodiments, the predefined progression rate is set by an administrator, such as a vehicle service center manager. In other embodiments, the vehicle service system can automatically set the predefined progression rate based on the services to be performed, the capabilities of the vehicle service center, and/or other circumstances associated with the vehicle service center. In additional embodiments, the predefined progression rate can be variable and/or dynamically set by the vehicle service system from time to time.

As indicated above, the vehicle service system can analyze information associated vehicles to be serviced at a vehicle service center. For example, the vehicle service system can analyze information provided by vehicle owners, information associated with past services performed on the vehicles, and/or information provided by manufacturers of the vehicles. Based on the analyzed information, the vehicle service system can determine the services that need to be performed at the vehicle service center, the tasks required to perform each service, and the parts, tools, and equipment necessary to perform each service. The vehicle service system can further determine the capabilities of each station of the vehicle service center to determine which stations are capable of performing each of the tasks to be performed on each vehicle.

Based on the information associated with the vehicles to be serviced and the services to be performed, the vehicle service system can determine an allocation of tasks to be performed at each station of the vehicle service center. In particular, for a given stage of progression, with vehicles at each station, the vehicle service system can determine, for example, a first set of tasks to be performed at a first station on a first vehicle, a second set of tasks to be performed at a second station on a second vehicle, and a third set of tasks to be performed at a third station on a third vehicle. Similarly, the vehicle service system can determine an allocation of tasks to be performed on a vehicle at each of the multiple stations. To illustrate, the vehicle service system can determine a first set of tasks to be performed on a vehicle at a first station, a second set of tasks to be performed on the vehicle when it moves to a second station, and a third set of tasks to be performed on the vehicle when it moves to a third station.

Furthermore, the vehicle service system can intelligently allocate resources to each of the stations of the vehicle service center. For example, the vehicle service system can identify the resources (e.g., technicians and components, such as machines) available to be allocated, can identify the tasks to be performed at each station based on the task allocation, and then determine the resources required to perform the allocated tasks in accordance with the predefined progression rate. The resource allocation can include an allocation of one or more technicians to each of the stations. Furthermore, the resource allocation can include an allocation of one or more machines, such as remotely controlled or autonomous robots or equipment to one or more stations. In addition to assigning the technicians and one or more machines to the stations, the vehicle service system can assign each of the technicians and/or machines one or more tasks to perform at their assigned stations. In particular, the vehicle service system can split the tasks allocated to a particular station between one or more technicians and/or one or more machines.

In some embodiments, the vehicle service system can allocate tasks and/or resources based on time estimates for completing services. For example, the vehicle service system can determine an estimated time to complete each task corresponding to each service to be performed. In some embodiments, the vehicle service system determines estimated times for tasks based on historical data gathered from completing the tasks over time. For example, the vehicle service system can determine the estimated times by averaging observed times for completing each task or generating estimated times using a machine learning model trained to estimate a time to complete a task. Using the estimated times for completing tasks, the vehicle service system can determine a total amount of time (e.g., a total number of minutes) required to perform a given service, a total amount of time to perform the tasks allocated to a given station, and/or the total amount of time to perform tasks across all the stations for a given stage of progression. Based on the estimated times, the vehicle service system can determine how to allocate tasks across stations and/or how to allocate resources across the stations. Furthermore, the vehicle service system can determine an estimated progression rate for a given task allocation and resource allocation. The vehicle service system can then compare the estimated progression rate to the predefined progression rate to determine whether the task allocation and resource allocation are suitable or whether an alternative task allocation and resource allocation is required to satisfy the predefined progression rate. In some embodiments, the vehicle service system iteratively determines task allocations and resource allocations, along with corresponding estimated progression rates, to determine a task allocation and resource allocation with an estimated progression rate that satisfies the predefined progression rate and/or is better than the progression rates for other task and resource allocations. Accordingly, the vehicle service system can identify a task allocation and resource allocation that is likely to result in a progression rate that satisfies the predefined progression rate.

In additional embodiments, the vehicle service system can dynamically respond to various events that might negatively affect vehicle service or jeopardize adherence to a predefined progression rate. In particular, the vehicle service system can monitor a completion status of one or more tasks at each station. Based on the completion status of the one or more tasks, the vehicle service system can update an estimated progression rate and compare the updated estimated progression rate to the predefined progression rate. If the updated estimated progression rate exceeds or fails to satisfy the predefined progression rate, the vehicle service system can dynamically modify the task allocation and/or resource allocation. For example, the vehicle service system can dynamically (e.g., in real time) reassign one or more tasks to a different technician or machine, or to a different stage of progression (e.g., to be completed when the vehicle moves to its next station). To illustrate, the vehicle service system may reassign a task to the one or more machines and cause the one or more machines to complete the reassigned task. In these or other embodiments, the reassigned task may have previously been assigned to a technician or another machine.

In accordance with the foregoing and as will be explained in more detail below, the vehicle service system can ensure that vehicles progress through sequential stations of a vehicle service center in accordance with a predefined progression rate, notwithstanding changes in circumstances or potential service delays. This intelligent approach creates predictable wait times and enhances user experiences for vehicle owners. Further, the vehicle service system can reduce system inefficiencies associated with unstructured, spontaneous resource allocation. Additionally, the vehicle service system can reduce an amount of user interactions with user interfaces to manually and subjectively manage resources within a vehicle service center. Accordingly, the embodiments disclosed herein improve the efficiency of a dynamic transportation matching system as it relates to managing service of the vehicles providing transportation services.

Additional features and advantages of one or more embodiments of the present disclosure are outlined in the description which follows.

Turning to the figures, FIG. 1 illustrates an example environment for a vehicle service system 102 that intelligently manages a vehicle service center 105 in order to efficiently service vehicles 110 a-110 n (collectively “vehicles 110”) in a service queue 145 in accordance with one or more embodiments of the present disclosure. In particular, the vehicle service system 102 can intelligently allocate tasks and resources to each of Stations A, B, and C such that the vehicles 110 progress through the stations of the vehicle service center 105 in accordance with a predefined progression rate. The predefined progression rate can define a finite period of time (e.g., about three minutes, about five minutes, about seven minutes, about ten minutes, about fifteen minutes, etc.) that a vehicle can remain at a station before progressing to a subsequent station in the sequence of stations or exit the vehicle service center if at the last station. For example, the vehicle service system 102 may determine task and resource allocations that allow the vehicles 110 to sequentially progress through the stations at a per-station rate that is less than (i.e., faster than) the predefined progression rate.

In more detail, the vehicle service system 102 can analyze vehicle service center data associated with the vehicle service center 105, such as a current resource availability of parts, tools, machines, technicians, etc. In addition, the vehicle service system 102 can analyze vehicle data corresponding to the vehicles 110 in the service queue 145 of the vehicle service center 105. The vehicle service system 102 may access the vehicle data as information associated with the vehicle service center 105 or otherwise obtain the vehicle data from a manufacturer of the vehicles 110, the vehicles 110 themselves, or transportation provider devices associated therewith. The vehicle data may include information related to respective services for the vehicles 110.

Based on, for example, the vehicle service center data, the vehicle data, the services for the vehicles 110 and/or the predefined progression rate, the vehicle service system 102 can determine a task allocation indicating tasks to be performed for each of the vehicles 110 and at each of the stations. The task allocation is arranged such that respective completion of the one or more services for each of the vehicles 110 and at each of the stations occurs within a corresponding stage of progression (e.g. of seven minutes) according to the predefined progression rate (e.g., of seven minutes per station). In addition, the vehicle service system 102 can utilize the task allocation to generate a component allocation indicating a distribution of one or more machines across the stations. The vehicle service system 102 can then cause the one or more machines to complete tasks according to the task allocation and the component allocation for a given stage of progression.

Further, in the event of a service issue potentially delaying timely completion of one or more services for a vehicle within the time allotted according to the predefined progression rate, the vehicle service system 102 can reallocate resources among the stations of the vehicle service center. In some embodiments, the vehicle service system 102 can reallocate resources by dynamically modifying task allocations (e.g., in real-time during the given stage of progression) and, in turn, cause one or more machines to complete reassigned tasks according to the modified task allocations. In this manner, the vehicle service system 102 can ensure the vehicles 110 progress through the vehicle service center according to the predefined progression rate.

Additionally, and as mentioned above, the vehicle service system 102 can intelligently dispatch the vehicles 110 to the vehicle service center 105. Alternatively, the dispatching may be performed by a dynamic transportation matching system that receives transportation match requests from a requestor computing device and provides a generated transportation match to a provider computing device and/or one of the vehicles 110. Vehicles 110 can also transport the requestor associated with the requestor computing device to a location specified in the transportation match request.

Furthermore, although not depicted in FIG. 1, the example environment for the vehicle service system 102 may include one or more devices, including a computing device (e.g., a vehicle service center manager client device), smart displays at the stations, various types of technician devices, etc. that are communicatively coupled to each other and/or a suitable network. In this manner, the vehicle service system 102 can communicate with personnel, machines (e.g., robots and equipment), etc. at the vehicle service center 105.

As further shown, in one or more embodiments, the vehicle service system 102 is independent of a dynamic transportation matching system implemented on one or more additional server(s), which are therefore pictorially omitted from FIG. 1. Likewise, the vehicle service system 102, which can be implemented as part of the vehicle service center 105, can communicate directly with the vehicle service center 105 without a network (also pictorially omitted from FIG. 1). However, in other embodiments, the vehicle service system 102 may communicate with the vehicle service center 105 (including any associated devices) via one or more networks and may use one or more communication platforms or technologies suitable for transmitting data and/or communication signals. In one or more embodiments, the network includes a cellular network. The network can additionally include the Internet or World Wide Web. Additionally or alternatively, the network can include various other types of networks that use various communication technologies and protocols, such as a corporate intranet, a virtual private network (“VPN”), a local area network (“LAN”), a wireless local network (“WLAN”), a wide area network (“WAN”), a metropolitan area network (“MAN”), or a combination of two or more such networks.

Further, in these or other embodiments, the vehicle service system 102 may perform one or more acts of the present disclosure described in conjunction with a dynamic transportation matching system or a network environment associated therewith as described more in relation to FIG. 6. Additionally or alternatively, the dynamic transportation matching system may perform one or more acts of the present disclosure described in conjunction with the vehicle service system 102. Further, the vehicle service system 102 and vehicles 110 (and/or provider devices respectively associated therewith) can communicate with each other via a network as just described.

As mentioned above, the vehicle service system 102 can dynamically allocate resources for one or more vehicles in a service queue to proceed through a set of sequential stations at a predefined progression rate. FIG. 2A illustrates a service queue 202 that the vehicle service system 102 dynamically manages in accordance with one or more embodiments of the present disclosure. As shown, FIG. 2A depicts a portion of the service queue 202 including service positions filled by vehicles 204-208 (or representations of the vehicles 204-208 such as identifiers F1002, M2523, and F1423). Further, FIG. 2A illustrates particular information associated with the vehicles 204-208, including respective services and corresponding parts to perform the services.

In more detail, the vehicle service system 102 may analyze information associated with the services for the vehicles 204-208 to determine a task allocation. Specifically, based on the information associated with the services for the vehicles 204-208, the vehicle service system 102 can determine a corresponding complexity for performing the services. Then, based on the determined complexities of the services, the vehicle service system 102 can generate an appropriate task allocation that will allow the vehicles 204-208 to progress through the stations of the vehicle service center according to the predefined progression rate. As used herein, the term complexity can relate to a difficulty level, a skill level, a number of tasks, and/or an estimated amount of time to complete a service. For instance, a service of greater complexity may be more difficult, involve more specialized skills, include more tasks, and/or require more time to complete. On the other hand, a service of less complexity may be less difficult, involve less specialized skills, include less tasks, and/or require less time to complete than a service of greater complexity.

As an example, the vehicle service system 102 may determine that the vehicle 208 is associated with a greater complexity than the vehicle 206 based on the number of services respectively associated with the vehicle 208 and the vehicle 206. Other complexity metrics may indicate the same result. For example, performing a tire rotation for the vehicle 206 involves less time and/or less skill in comparison to performing an oil change for the vehicle 208. Accordingly, the vehicle service system 102 may determine to allocate more resources for the oil change than the tire rotation so that both services are completed during a given stage of progression and the vehicle 208 and the vehicle 206 progress through the stations in accordance with the predefined progression rate.

As mentioned above, the vehicle service system 102 may determine a complexity of a service in order to generate a task allocation. FIG. 2B illustrates an example listing of tasks specific to example services for the vehicles 204-208 in accordance with one or more embodiments of the present disclosure. As shown, tasks 210 correspond to a service 212 comprising an oil change, tasks 214 correspond to a service 216 comprising a tire rotation, and tasks 218 correspond to services 220 comprising a routine service and windshield wiper replacement. The tasks 218 are designated for completion at Station A. Similarly, the tasks 214 and the tasks 218 are respectively designated for completion at Stations B and C. In these or other embodiments, the vehicle service system 102 may dynamically display the listing of tasks as shown in FIG. 2B.

In more detail with respect to determining a complexity of a service, the vehicle service system 102 can analyze individual tasks in order to determine the complexity of a service. For example, the vehicle service system 102 may analyze and generate a predicted difficulty, skill level, time allotment, etc. for each individual task to complete a service. For instance, the vehicle service system 102 may predict, for the tasks 210, that resetting the oil light will take ten seconds to perform, installing the new oil filter will take thirty seconds to perform, adding engine oil will take one hundred seconds to perform, and so forth. Further, in some embodiments, the vehicle service system 102 can aggregate, average, generate statistical models, or otherwise intelligently generate a holistic decision (i.e., a complexity determination) for a service based on the individual tasks. Additionally or alternatively, the vehicle service system 102 may learn and/or dynamically adjust a predicted difficulty, skill level, time allotment, etc. for individual tasks based on historic performance, vehicle data, and/or the available technicians and machines (e.g., equipment, robots, etc.) performing the tasks. Thus, the vehicle service system can determine estimated times for task completion by averaging observed times for completing each task or generating estimated times using a machine learning model trained to estimate a time to complete a task. Using the estimated times for completing tasks, the vehicle service system can determine a total amount of time (e.g., a total number of minutes) required to perform a given service, a total amount of time to perform the tasks allocated to a given station, and/or the total amount of time to perform tasks across all the stations for a given stage of progression.

Additionally or alternatively, the vehicle service system 102 can generate the task allocation based on hoist heights of hoists respectively positioned at one or more of the Stations A, B, or C. For example, the vehicle service system 102 can allocate the tasks 210 for performing at Station A based on the hoist height of a hoist at Station A being positioned at full height (e.g., about five feet tall, about six feet tall, about eight feet tall, etc.). In this manner, technicians and/or machines can perform one or more of the tasks 210 underneath the vehicle 208 hoisted at full height. Similarly, the vehicle service system 102 can allocate the tasks 214 for performing at Station B based on the hoist height of a hoist at Station B being positioned at mid-height (e.g., about one foot tall, about three feet tall, about five feet tall, etc.). In this manner, technicians and/or machines can perform one or more of the tasks 214 on and/or around the vehicle 206 hoisted at mid-height. Further, the vehicle service system 102 can allocate the tasks 218 for performing at Station C based on the vehicle 204 being positioned at ground level. In this manner, technicians and/or machines can perform one or more of the tasks 210 on and/or around the vehicle 208 at ground level.

Additionally or alternatively, the vehicle service system 102 may dynamically adjust the foregoing discussed task allocations based on vehicle data and preset hoist heights at the respective Stations A, B, and C (as applicable). For example, the vehicle service system 102 may allocate tasks for an oil change for a first vehicle at Station A where the oil filter is accessible from underneath the first vehicle and the hoist height is designated for full height. Similarly, for example, the vehicle service system 102 may allocate tasks for an oil change for a second vehicle at Station B where the oil filter is only accessible through opening the hood (from on top) of the second vehicle and the hoist height is designated for mid-height. In this manner, the vehicle service system 102 can determine task allocations based further on discrete hoist heights of hoists at the Stations A, B, or C.

As just described, the vehicle service system 102 can perform task-specific analyses to determine a complexity associated with performing a service. Based on such complexity analyses, the vehicle service system 102 can intelligently generate a task allocation suitable for completing the service(s) within the time allotted according to the predefined progression rate. For example, FIG. 2C illustrates resource allocations 222-226 including task allocations and component allocations in accordance with one or more embodiments of the present disclosure.

As shown in FIG. 2C, the vehicle service system 102 can determine a number of technicians and/or machines (e.g., robots and equipment) needed to perform the tasks with certain components depicted in FIG. 2B to complete the service within a given time allotted according to the predefined progression rate. For example, based on the estimated times of task completion described in the above complexity assessment, the vehicle service system can determine how to allocate tasks across stations and/or how to allocate resources across the stations (i.e., how to customize at least one of the task allocation or the component allocation based on the estimated time to complete each of the tasks). In turn, the vehicle service system 102 can, in a task allocation, group various tasks into task sets and correspondingly assign the task sets to technicians and/or machines.

In more detail with respect to generating the task allocation at Station A, the vehicle service system 102 can utilize a complexity determination for the tasks 210 (e.g., the time estimates for completing tasks described above in relation to FIG. 2B) to estimate a service time of twenty-three minutes at Station A for the vehicle 208. Thus, in order to facilitate completion of the oil change for the vehicle 208 at Station A within the time allotted in a first stage of progression according to the predefined progression rate (e.g., seven minutes per station), the vehicle service system 102 is shown in FIG. 2C as assigning Technicians A-C and Robot A to Station A to perform task sets (a)-(d), respectively. Based on such a four-way task allocation, the vehicle service system 102 can generate an estimated progression rate predicting Technician A to complete the task set (a) in six minutes, Technician B to complete the task set (b) in five minutes, Technician C to complete the task set (c) in six and a half minutes, and Robot A to complete the task set (d) in five and a half minutes. Accordingly, the vehicle service system 102 estimates a completion time of six and a half minutes (i.e., the highest/longest estimated completion time of the individual task sets) to complete the service 220 for the vehicle 208 at Station A.

Similarly, for generating a task allocation at Station B, the vehicle service system 102 can utilize a complexity determination for the tasks 214 (e.g., the time estimates for completing tasks mentioned above in relation to FIG. 2B) to estimate a service time of eighteen minutes at Station B for the vehicle 206. Thus, in order to facilitate completion of the tire rotation for the vehicle 206 at Station B within the time allotted in the first stage of progression according to the predefined progression rate (e.g., seven minutes per station), the vehicle service system 102 is shown in FIG. 2C as assigning Technicians E, F, and G to perform task sets (e)-(g), respectively. Based on such a three-way task allocation, the vehicle service system 102 can generate an estimated progression rate predicting Technician E to complete the task set (e) in six and a half minutes, Technician F to complete the task set (f) in six and a half minutes, and Technician G to complete the task set (g) in five minutes. Accordingly, the vehicle service system 102 estimates a completion time of six and a half minutes (i.e., the highest/longest estimated completion time of the individual task sets) to complete the service 216 for the vehicle 206 at Station B.

Further, for generating a task allocation at Station C, the vehicle service system 102 can utilize a complexity determination for the tasks 218 (e.g., the time estimates for completing tasks mentioned above in relation to FIG. 2B) to estimate a service time of twelve minutes at Station C for the vehicle 204. Thus, in order to facilitate completion of the routine service and wiper blade replacement for the vehicle 204 at Station C within the time allotted in the first stage of progression according to the predefined progression rate (e.g., seven minutes per station), the vehicle service system 102 is shown in FIG. 2C as assigning Technicians H and I to perform task sets (h) and (i), respectively. Based on such a two-way task allocation, the vehicle service system 102 can generate an estimated progression rate predicting Technician H to complete the task set (h) in five and a half minutes and Technician I to complete the task set (i) in six and a half minutes. Accordingly, the vehicle service system 102 estimates a completion time of six and a half minutes (i.e., the highest/longest estimated completion time of the individual task sets) to complete the services 220 for the vehicle 204 at Station C.

In addition, FIG. 2C illustrates that the resource allocations 222-226 include a component allocation of parts, tools, and machines respectively associated with the services for the vehicle 208, the vehicle 206, and the vehicle 204 at corresponding Stations A-C of the vehicle service center. In particular, the vehicle service system 102 can generate the component allocation based on the determined task allocation described above. For example, the vehicle service system 102 may generate a component allocation for the vehicle 208 at Station A as including machines that comprise Robot A and Equipment A and C, in addition to tools and parts for performing the service 212 of an oil change. Likewise, the vehicle service system 102 may generate a component allocation for the vehicle 206 at Station B as including machines that comprise Robot B and Equipment A and D, in addition to tools and parts for performing the service 216 of a tire rotation. Similarly, the vehicle service system 102 may generate a component allocation for the vehicle 204 at Station C as including machines that comprise Robot C and Equipment B, in addition to tools and parts for performing the service 220 of a routine service and windshield wiper blade replacement.

In some embodiments, and as depicted in FIG. 2C, the vehicle service system 102 may not allocate a perfect split of tasks between technicians and/or robots (i.e., some task sets may take longer or involve different skill sets in comparison to other task sets). In some cases, the vehicle service system 102 may determine there is no equal distribution of tasks among all the technicians and/or robots. Additionally or alternatively, the vehicle service system 102 may give preference or weight to a particular grouping of tasks (including unequal task sets) that facilitate increased efficiency, convenience, etc. (e.g., due to a similar skill involved or due to physical proximity such as pulling the hood release latch inside the vehicle below the steering wheel and subsequently resetting the oil light indicator just above the steering wheel).

As mentioned above, the vehicle service system 102 can perform task-specific analyses to determine a complexity associated with performing a service, and, in turn, generate a resource allocation comprising a task allocation and component allocation. Where FIG. 2C schematically illustrates such a resource allocation, FIG. 2D illustrates a rendered implementation of a resource allocation in accordance with one or more embodiments of the present disclosure. In particular, FIG. 2D illustrates a resource allocation for a single stage of progression during which the vehicles 204-208 are positioned in respective stations of the vehicle service center for performance of corresponding services.

In more detail, the resource allocation includes various technicians and a component allocation of machines 230 a-230 g and components 236 a-236 c. By way of example, the component allocation of machines 230 a-230 g comprises equipment and robots, such as an autonomous oil drain 230 a, robots 230 b and 230 f, programmable hoists 230 c-230 d, tire changing equipment 230 e, and a power washer 230 g. Additionally, for example, the component allocation of components 236 a includes parts such as new oil containers and oil filters, and various tools for changing oil of a vehicle. Similarly, for example, the components 236 b include parts such as flat repair patches, wheel-balance weights, valve stems, pressure sensors, etc., and various tools such as an air gun, lug nut sockets, and torque wrench for performing a tire rotation. Further, the component allocation of the components 236 c includes parts such as spray bottles, cleaner, windshield wiper blades, wiper fluid, brake fluid, engine belts, etc., and various tools for performing a routine service such as a vacuum.

In these or other embodiments, the vehicle service system 102 dynamically manages the component allocation of the machines 230 a-230 g and the components 236 a-236 c, for example, according to the service queue and associated vehicles (e.g., the vehicles 204-208) with corresponding services. For instance, the vehicle service system 102 may provide instructions to the robot 230 b to stock, for the given stage of progression, the tool chests and the part shelves with the components 236 a-236 c that correspond to the respective services for the vehicle 208, the vehicle 206, and the vehicle 204. Likewise, the vehicle service system 102 may instruct one or more of the machines 230 a-230 g to be positioned, for the given stage of progression, in certain stations in accordance with the services for the vehicles 204-208.

In a next stage of progression, a next vehicle enters Station A, the vehicle 208 and the vehicle 206 advance to the next stations, and the vehicle 204 exits the vehicle service center. Accordingly, the vehicle service system 102 may instruct the robot 230 b to stock, for the next stage of progression, the tool chests and the part shelves with the components 236 a-236 c that correspond to the respective services for the next vehicle, the vehicle 208, and the vehicle 206, and so forth. Likewise, the vehicle service system 102 may instruct one or more of the machines 230 a-230 g to be positioned, for the next stage of progression, in certain stations in accordance with the services for the next vehicle and the vehicles 206-208. In this manner, the vehicle service system 102 can dynamically manage the component allocation, including inventory, real-time stocking/availability, positioning, etc. for the machines 230 a-230 g and the components 236 a-236 c in accordance with the service queue (i.e., specific vehicles and their corresponding services).

As further shown in FIG. 2D, the programmable hoists 230 c-230 d are positioned are discrete hoist heights that are different relative to each other. In particular, the vehicle service system positions the programmable hoist 230 c at full height to facilitate one or more of the tasks performed at Station A (e.g., an oil change). Similarly, the vehicle service system positions the programmable hoist 230 d at mid-height to facilitate one or more of the tasks performed at Station B (e.g., a tire rotation). Although a particular configuration of hoist heights are shown in FIG. 2D, the hoist heights can be adjusted as needed to other hoist heights (e.g., for performing some task).

As additionally shown in FIG. 2D, the vehicle service system 102 can generate a resource allocation and display the generated resource allocation via resource allocation displays 228 a-228 c (e.g., for technician reference) and at a vehicle service center manager client device 234. The vehicle service system 102 can also receive user inputs from the vehicle service center manager client device 234 to modify a resource allocation, for example, as recommended by the vehicle service system 102 or according to user preference.

Furthermore, and in accordance with the resource allocation of tasks and components, the vehicle service system 102 can monitor, via monitoring devices 232, a completion status of tasks for performing one or more services for each vehicle during a given stage of progression. The monitoring devices 232 may include one or more types of video surveillance devices. Additionally or alternatively, the monitoring devices 232 may include wearable devices (not shown) and/or personal client devices (not shown) that are configured for receiving audio and/or video inputs. Thus, in some embodiments, the vehicle service system 102 may track completed tasks, one or more current tasks in-progress, and tasks yet begun (e.g., on a task-allocation basis for each technician and machine).

To track a completion status of tasks, the vehicle service system 102 may use image recognition techniques to process (in real-time) video data comprising interactions between the vehicles 204-208 and those instructed to perform tasks according to a task allocation, namely the machines 230 a-230 g (e.g., the robots and equipment) and the technicians. For instance, the vehicle service system 102 may use video data action markers that indicate what tasks are being performed, such as video data comprising an action marker of opening a vehicle hood, taking lug nuts off of a wheel, hoisting the vehicle into the air, etc. Accordingly, in some embodiments, the vehicle service system 102 includes artificial intelligence systems capable of comparing training data with ground truth data to learn which interactions (e.g., action markers) correspond to performance of which tasks. Additionally or alternatively (in the embodiment of a personal monitoring device 232 such as a cell phone, tablet, smart watch, or smart eyewear), the vehicle service system 102 may receive from the personal monitoring device (i) audio confirmation of task completion from technicians such as voice confirmations, (ii) haptic feedback from a tap or swipe gesture to indicate a task is in-progress or complete, (iii) a visual cue, etc. Additionally or alternatively, the machines 230 a-230 g may send communications to the vehicle service system 102 regarding the completion status of one or more tasks (e.g., via a wireless connection such as a Bluetooth® connection).

In accordance with the monitoring of the completion status of tasks prescribed by a resource allocation, the vehicle service system 102 may update one or more displays in the vehicle service center, for example, the resource allocation displays 228 a-228 c and the vehicle service center manager client device 234. Additionally or alternatively, the vehicle service system 102 may suggest to the vehicle service center manager client device 234, in response to the monitoring of the completion status of tasks, one or more selectable options for modifying a resource allocation (e.g., as described more in relation to FIG. 2E below).

Further, based on the monitored completion status of tasks, the vehicle service system 102 can detect (via a comparison) that an estimated progression rate is on pace with or likely satisfies the predefined progression rate, or else off pace with or is likely to exceed the predefined progression rate. For example, the vehicle service system 102 may compare an amount of time remaining in a given stage of progression with an estimated time needed to perform one or more remaining tasks of a service. If the estimated time needed to perform one or more remaining tasks exceeds the remaining time in the given stage of progression, the vehicle service system 102 may determine that a current progression of the one or more vehicles will likely fail to satisfy the predefined progression rate of vehicles through the stations of the vehicle service center.

In other embodiments, other comparisons are herein contemplated. For example, the estimated progression rate may exceed (or may be likely to exceed) the predefined progression rate if: (i) the estimated progression rate is greater than or equal to the predefined progression rate, (ii) the estimated progression rate is greater than a threshold amount relative to the predefined progression rate, (iii) the estimated progression rate is less than or equal to the predefined progression rate, or (iv) the estimated progression rate is less than a threshold amount relative to the predefined progression rate.

As just discussed, the vehicle service center can detect, based on the monitored completion status of tasks, whether an estimated progression rate is likely to satisfy the predefined progression rate of vehicles through the vehicle service center. FIG. 2E illustrates a rendered implementation of a resource reallocation in accordance with one or more embodiments of the present disclosure. In particular, FIG. 2E illustrates a modified resource allocation (i.e., a reallocation of resources) for a particular stage of progression during which the vehicles 204-208 are positioned in respective stations of the vehicle service center for performance of corresponding services.

In more detail, FIG. 2E illustrates a dynamic response of the vehicle service system 102 to ensure that service of vehicles adheres to the predefined progression rate. For example, in response to detecting the progression of one or more vehicles through the stations of the vehicle service center is likely to exceed the predefined progress rate (based on a completion status of tasks), the vehicle service system 102 can reassign during the given stage of progression at least one task to one or more of the machines 230 a-230 g. In some embodiments, the delayed progression of one or more vehicles through the vehicle service center may be due to encountered service problems, unexpected inefficiencies, etc. As an example problem for the vehicle 206, the vehicle service system 102 may determine (e.g., via one or more of the monitoring devices 232) that the lug nuts securing one of the wheels to the vehicle 206 may be stripped such that technicians in Station B are initially unable to remove the wheel to perform a tire rotation.

Accordingly, the vehicle service system 102 can reassign one or more tasks among the technicians and/or the machines 230 a-230 g to ensure the problematic wheel does not interfere with a progression of the vehicle 206 through the vehicle service center according to the predefined progression rate. Then, based on the reassignment of tasks, the vehicle service system 102 can cause one or more of the machines 230 a-230 g to complete the one or more reassigned tasks.

Specifically, for example, the vehicle service system 102 may reassign one or more tasks originally assigned to a technician of Station A (who is now directed to Station B with newly assigned tasks) to one or more other technicians or machines of Station A. Likewise, the vehicle service system 102 may reassign one or more tasks originally assigned to the robot 230 b of Station A (which is now instructed to complete newly assigned tasks at Station B) to one or more other technicians or machines of Station A. Similarly, the vehicle service system 102 may reassign one or more tasks originally assigned to the machine 230 f of Station C (which is also now instructed to complete newly assigned tasks at Station B) to one or more other technicians or machines of Station C.

The newly assigned tasks for the vehicle 206 at Station B may include previously assigned tasks (to those technicians and equipment already at Station B) and/or new tasks that address the service issue at Station B. In this manner, the vehicle service system 102 can reallocate resources by modifying a task allocation and a component allocation across one or more stations of the vehicle service center. More specifically to the example problem, the vehicle service system 102 can ensure the problem of stripped lug nuts on the vehicle 206 does not interfere with a timely completion of the tire rotation prior to expiration of the time allotted in the given stage of progression according to the predefined progression rate. Further, the vehicle service system 102 reallocates resources in such a way as to still enable timely completion of services at other stations (the non-delayed stations) from which resources are taken. For example, the vehicle service system 102 can, based on the complexity determination described above, determine how many resources can be allocated away from a station while still allowing for completion of the services at that station within the given stage of progression.

Additionally or alternatively, the vehicle service system 102 may suggest to the vehicle service center manager client device 234, in response to the monitoring of the completion status of tasks, one or more selectable options for modifying a resource allocation. For example, the vehicle service system 102 may cause a graphical user interface of the vehicle service center manager client device 234 to display a listing or other graphical representation of resource reallocation options, and request the user to make a selection. If no selection is made within a threshold period of time, the vehicle service system 102 may auto-select one of the recommended options and proceed with the resource reallocation accordingly.

FIG. 3 illustrates a schematic diagram of an example embodiment of the vehicle service system 102 arranged according to at least one embodiment of the present disclosure. As shown in FIG. 3, the vehicle service system 102 includes various components for performing the processes and features described herein. For example, as shown in FIG. 3, the vehicle service system 102 includes a vehicle data manager 302, a vehicle service center data manager 304, a dynamic response manager 306, an artificial intelligence data manager 308, and a storage manager 310.

Each of the components 302-310 of the vehicle service system 102 can be implemented using a computing device including at least one processor executing instructions that cause the performance of the processes described herein. In some embodiments, the components 302-310 of the vehicle service system 102 can be implemented on a single server or across multiple servers. Additionally or alternatively, a combination of one or more server devices and one or more computing devices can implement the components described herein in a different arrangement than illustrated in FIG. 3. Additionally or alternatively, the components described herein can comprise a combination of computer-executable instructions and hardware.

As illustrated in FIG. 3, the vehicle service system 102 includes the vehicle data manager 302. In one or more embodiments, the vehicle data manager 302 handles the sending, receiving, storing, and/or requesting of vehicle data. For example, the vehicle data manager 302 can initiate from the vehicle service system 102 a request of vehicle data to the transportation provider device or associated vehicle (e.g., to determine a complexity of one or more services for the vehicle, such as the time estimates for completing tasks). Additionally, the vehicle data manager 302 can receive vehicle data transmitted from the vehicle and/or the transportation provide device to the vehicle service system 102. Further, the vehicle data manager 302 can receive vehicle data input via one or more computing devices at the vehicle service center, for example, during a check-in or check-out process.

Also as illustrated in FIG. 3, the vehicle service system 102 includes the vehicle service center data manager 304. In some embodiments, the vehicle service center data manager 304 handles the sending, receiving, storing and/or requesting of vehicle service center data. For example, the vehicle service center data manager 304 can initiate from the vehicle service system 102 a request of vehicle service center data of the vehicle service center (e.g., data associated with the service queue, a progression of vehicles relative to a predefined progression rate, etc.). Additionally, the vehicle service center data manager 304 can receive vehicle service center data transmitted from a client device (including the vehicle service center manager client device 234 via a graphical user interface) to the vehicle service system 102.

Additionally illustrated in FIG. 3, the vehicle service system 102 includes the dynamic response manager 306. In some embodiments, the dynamic response manager 306 can provide a dynamic response for servicing vehicles in response to changes to the vehicle service center data, service issues during a given stage of progression, etc. For example, the dynamic response manager 306 can reallocate resources within the vehicle service center and instruct one or more machines to perform reassigned tasks according to a modified task allocation.

As further illustrated in FIG. 3, the vehicle service system 102 includes the artificial intelligence data manager 308. In some embodiments, the artificial intelligence data manager 308 handles the model selection, training, learning, validation, and/or other aspects of machine learning. For example, the artificial intelligence data manager 308 can iteratively analyze action markers to monitor a completion status of tasks. In some embodiments, the artificial intelligence data manager 308 can further analyze post-service performance of a vehicle to determine a next service process and/or distribution of tasks to perform such service. Additionally, the artificial intelligence data manager 308 can learn a vehicle on-the-fly in the vehicle service center to identify an unknown vehicle and provide a first service most fitting for the vehicle and its current condition.

Additionally illustrated in FIG. 3, the vehicle service system 102 includes the storage manager 310 configured to store any suitable type of data. As shown, the storage manager 310 can store a predefined progression rate 312, a parameter dictating how long each vehicle can spend at each station within the vehicle service center. In some embodiments, the storage manager 310 can store this parameter and/or any other parameters. Additionally, the storage manager 310 can permit adjustment, configuration, and/or optimization of the predefined progression rate 312 and other parameters as applicable.

FIGS. 1-3, the corresponding text, and the examples provide several different systems, methods, techniques, components, and/or devices of the vehicle service system 102 in accordance with one or more embodiments. In addition to the above description, one or more embodiments can also be described in terms of flowcharts including acts for accomplishing a particular result. For example, FIG. 4 illustrates a flowchart of a series of acts 400 for allocating resources of a vehicle service center in accordance with one or more embodiments of the present disclosure. The vehicle service system 102 may perform one or more acts of the series of acts 400 in addition to or alternatively to one or more acts described in conjunction with other figures. While FIG. 4 illustrates acts according to one embodiment, alternative embodiments may omit, add to, reorder, and/or modify any of the acts shown in FIG. 4. The acts of FIG. 4 can be performed as part of a method. Alternatively, a non-transitory computer-readable medium and/or one or more memory devices can comprise instructions that, when executed by one or more processors, cause a computing device or system to perform the acts of FIG. 4. Accordingly, in some embodiments, a system can perform the acts of FIG. 4.

As shown, the series of acts 400 includes an act 402 of analyzing information associated with vehicles to be serviced at a vehicle service center. In these or other embodiments, the vehicle service center comprises a set of sequential stations through which with one or more vehicles scheduled for service at a vehicle service center comprising a set of sequential stations. In addition, the set of sequential stations comprises three sequential stations, and the predefined progression rate comprises an amount of time the vehicles spend at each of the three stations. The series of acts 400 further includes an act 404 of determining, based on the information associated with the one or more vehicles, a respective set of tasks for completion at each of the sequential stations in accordance with a predefined progression rate. In some embodiments, determining the respective set of tasks is based further on discrete hoist heights for performing the respective set of tasks at each station of the set of sequential stations.

Further, an act in the series of acts 400 includes an act 406 of determining, based on the respective set of tasks, a respective set components required at each of the sequential stations. In addition, an act in the series of acts 400 includes an act 408 of causing the respective set of components to be correspondingly positioned at each of the sequential stations to perform the respective set of tasks in accordance with the predefined progression rate.

It is understood that the outlined acts in the series of acts 400 are only provided as examples, and some of the acts may be optional, combined into fewer acts, or expanded into additional acts without detracting from the essence of the disclosed embodiments. As an example of one or more additional or alternative acts not shown in FIG. 4, act(s) in the series of acts 400 may include: determining an estimated time to complete each task of the respective set of tasks; determining an estimated progression rate based on the estimated time to complete each task of the respective set of tasks; and comparing the estimated progression rate to the predefined progression rate to determine that the estimated progression rate satisfies the predefined progression rate.

In yet another example of one or more additional or alternative acts not shown in FIG. 4, act(s) in the series of acts 400 may include: monitoring a completion status of one or more tasks of the respective set of tasks at each station from the set of sequential stations; updating, based on the completion status of the one or more tasks at each station, the estimated progression rate; determining that the updated estimated progression rate exceeds the predefined progression rate; and in response to determining that the updated estimated progression rate exceeds the predefined progression rate, modifying at least one of the respective set of tasks or the respective set of components.

Still further, another example of one or more additional or alternative acts not shown in FIG. 4, act(s) in the series of acts 400 may include: modifying at least one of the task allocation or the component allocation by reassigning a task to a machine of the one or more machines; and causing the machine to complete the reassigned task. In an additional example of one or more additional or alternative acts not shown in FIG. 4, act(s) in the series of acts 400 may include: determining an estimated time to complete each task of the respective set of tasks; and customizing at least one of the respective set of tasks or the respective set of components based on the estimated time to complete each task of the respective set of tasks.

FIG. 5 illustrates a block diagram of an example computing device 500 that may be configured to perform one or more of the processes described above. One will appreciate that one or more computing devices, such as the computing device 500 may represent the computing devices described above (e.g., a vehicle computing device, a transportation provider device, a vehicle service center manager client device 234, etc.). In one or more embodiments, the computing device 500 may be a mobile device (e.g., a mobile telephone, a smartphone, a PDA, a tablet, a laptop, a camera, a tracker, a watch, a wearable device, etc.). In some embodiments, the computing device 500 may be a non-mobile device (e.g., a desktop computer or another type of client device). Further, the computing device 500 may be a server device that includes cloud-based processing and storage capabilities.

As shown in FIG. 5, the computing device 500 can include one or more processor(s) 502, memory 504, a storage device 506, input/output interfaces 508 (or “I/O interfaces 508”), and a communication interface 510, which may be communicatively coupled by way of a communication infrastructure (e.g., bus 512). While the computing device 500 is shown in FIG. 5, the components illustrated in FIG. 5 are not intended to be limiting. Additional or alternative components may be used in other embodiments. Furthermore, in certain embodiments, the computing device 500 includes fewer components than those shown in FIG. 5. Components of the computing device 500 shown in FIG. 5 will now be described in additional detail.

In particular embodiments, the processor(s) 502 includes hardware for executing instructions, such as those making up a computer program. As an example, and not by way of limitation, to execute instructions, the processor(s) 502 may retrieve (or fetch) the instructions from an internal register, an internal cache, memory 504, or a storage device 506 and decode and execute them.

The computing device 500 includes memory 504, which is coupled to the processor(s) 502. The memory 504 may be used for storing data, metadata, and programs for execution by the processor(s). The memory 504 may include one or more of volatile and non-volatile memories, such as Random-Access Memory (“RAM”), Read-Only Memory (“ROM”), a solid-state disk (“SSD”), Flash, Phase Change Memory (“PCM”), or other types of data storage. The memory 504 may be internal or distributed memory.

The computing device 500 includes a storage device 506 includes storage for storing data or instructions. As an example, and not by way of limitation, the storage device 506 can include a non-transitory storage medium described above. The storage device 506 may include a hard disk drive (HDD), flash memory, a Universal Serial Bus (USB) drive or a combination these or other storage devices.

As shown, the computing device 500 includes one or more I/O interfaces 508, which are provided to allow a user to provide input to (such as user strokes), receive output from, and otherwise transfer data to and from the computing device 500. These I/O interfaces 508 may include a mouse, keypad or a keyboard, a touch screen, camera, optical scanner, network interface, modem, other known I/O devices or a combination of such I/O interfaces 508. The touch screen may be activated with a stylus or a finger.

The I/O interfaces 508 may include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers. In certain embodiments, I/O interfaces 508 are configured to provide graphical data to a display for presentation to a user. The graphical data may be representative of one or more graphical user interfaces and/or any other graphical content as may serve a particular implementation.

The computing device 500 can further include a communication interface 510. The communication interface 510 can include hardware, software, or both. The communication interface 510 provides one or more interfaces for communication (such as, for example, packet-based communication) between the computing device and one or more other computing devices or one or more networks. As an example, and not by way of limitation, communication interface 510 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI. The computing device 500 can further include a bus 512. The bus 512 can include hardware, software, or both that connects components of the computing device 500 to each other.

FIG. 6 illustrates an example network environment 600 of a transportation matching system. The network environment 600 includes a client device 606, a transportation matching system 602, and a vehicle subsystem 608 connected to each other by a network 604. Although FIG. 6 illustrates a particular arrangement of the client device 606, the transportation matching system 602, the vehicle subsystem 608, and the network 604, this disclosure contemplates any suitable arrangement of the client device 606, the transportation matching system 602, the vehicle subsystem 608, and the network 604. As an example, and not by way of limitation, two or more of the client device 606, the transportation matching system 602, and the vehicle subsystem 608 communicate directly, bypassing the network 604. As another example, two or more of the client device 606, the transportation matching system 602, and the vehicle subsystem 608 may be physically or logically co-located with each other in whole or in part. Moreover, although FIG. 6 illustrates a particular number of the client devices 606, the transportation matching systems 602, the vehicle subsystems 608, and the networks 604, this disclosure contemplates any suitable number of the client devices 606, the transportation matching systems 602, the vehicle subsystems 608, and the networks 604. As an example, and not by way of limitation, the network environment 600 may include multiple client devices 606, the transportation matching systems 602, the vehicle subsystems 608, and the networks 604.

This disclosure contemplates any suitable network 604. As an example, and not by way of limitation, one or more portions of the network 604 may include an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, or a combination of two or more of these. The network 604 may include one or more networks 604.

Links may connect the client device 606, the transportation matching system 602, and the vehicle subsystem 608 to the communication network 604 or to each other. This disclosure contemplates any suitable links. In particular embodiments, one or more links include one or more wireline (such as for example Digital Subscriber Line (DSL) or Data Over Cable Service Interface Specification (DOCSIS), wireless (such as for example Wi-Fi or Worldwide Interoperability for Microwave Access (WiMAX), or optical (such as for example Synchronous Optical Network (SONET) or Synchronous Digital Hierarchy (SDH) links. In particular embodiments, one or more links each include an ad hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, a portion of the Internet, a portion of the PSTN, a cellular technology-based network, a satellite communications technology-based network, another link, or a combination of two or more such links. Links need not necessarily be the same throughout the network environment 600. One or more first links may differ in one or more respects from one or more second links.

In particular embodiments, the client device 606 may be an electronic device including hardware, software, or embedded logic components or a combination of two or more such components and capable of carrying out the appropriate functionalities implemented or supported by the client device 606. As an example, and not by way of limitation, a client device 606 may include any of the computing devices discussed above in relation to FIG. 6. A client device 606 may enable a network user at the client device 606 to access a network. A client device 606 may enable its user to communicate with other users at other client devices 606.

In particular embodiments, the client device 606 may include a transportation service application or a web browser, such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME or MOZILLA FIREFOX, and may have one or more add-ons, plug-ins, or other extensions, such as TOOLBAR or YAHOO TOOLBAR. A user at the client device 606 may enter a Uniform Resource Locator (URL) or other address directing the web browser to a particular server (such as server), and the web browser may generate a Hyper Text Transfer Protocol (HTTP) request and communicate the HTTP request to server. The server may accept the HTTP request and communicate to client device 606 one or more Hyper Text Markup Language (HTML) files responsive to the HTTP request. The client device 606 may render a webpage based on the HTML files from the server for presentation to the user. This disclosure contemplates any suitable webpage files. As an example, and not by way of limitation, webpages may render from HTML files, Extensible Hyper Text Markup Language (XHTML) files, or Extensible Markup Language (XML) files, according to particular needs. Such pages may also execute scripts such as, for example and without limitation, those written in JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, combinations of markup language and scripts such as AJAX (Asynchronous JAVASCRIPT and XML), and the like. Herein, reference to a webpage encompasses one or more corresponding webpage files (which a browser may use to render the webpage) and vice versa, where appropriate.

In particular embodiments, the transportation matching system 602 may be a network-addressable computing system that can host a ride share transportation network. The transportation matching system 602 may generate, store, receive, and send data, such as, for example, user-profile data, concept-profile data, text data, ride request data, GPS location data, provider data, requester data, vehicle data, or other suitable data related to the ride share transportation network. This may include authenticating the identity of providers and/or vehicles who are authorized to provide ride services through the transportation matching system 602. In addition, the transportation service system may manage identities of service requestors such as users/requesters. In particular, the transportation service system may maintain requester data such as driving/riding histories, personal data, or other user data in addition to navigation and/or traffic management services or other location services (e.g., GPS services).

In particular embodiments, the transportation matching system 602 may manage ride matching services to connect a user/requester with a vehicle and/or provider. By managing the ride matching services, the transportation matching system 602 can manage the distribution and allocation of vehicle subsystem resources and user resources such as GPS location and availability indicators, as described herein.

The transportation matching system 602 may be accessed by the other components of the network environment 600 either directly or via network 604. In particular embodiments, the transportation matching system 602 may include one or more servers. Each server may be a unitary server or a distributed server spanning multiple computers or multiple datacenters. Servers may be of various types, such as, for example and without limitation, web server, news server, mail server, message server, advertising server, file server, application server, exchange server, database server, proxy server, another server suitable for performing functions or processes described herein, or any combination thereof. In particular embodiments, each server may include hardware, software, or embedded logic components or a combination of two or more such components for carrying out the appropriate functionalities implemented or supported by server. In particular embodiments, the transportation matching system 602 may include one or more data stores. Data stores may be used to store various types of information. In particular embodiments, the information stored in data stores may be organized according to specific data structures. In particular embodiments, each data store may be a relational, columnar, correlation, or other suitable database. Although this disclosure describes or illustrates particular types of databases, this disclosure contemplates any suitable types of databases. Particular embodiments may provide interfaces that enable a client device 606, or a transportation matching system 602 to manage, retrieve, modify, add, or delete, the information stored in data store.

In particular embodiments, the transportation matching system 602 may provide users with the ability to take actions on various types of items or objects, supported by the transportation matching system 602. As an example, and not by way of limitation, the items and objects may include ride share networks to which users of the transportation matching system 602 may belong, vehicles that users may request, location designators, computer-based applications that a user may use, transactions that allow users to buy or sell items via the service, interactions with advertisements that a user may perform, or other suitable items or objects. A user may interact with anything that is capable of being represented in the transportation matching system 602 or by an external system of a third-party system, which is separate from the transportation matching system 602 and coupled to the transportation matching system 602 via a network 604.

In particular embodiments, the transportation matching system 602 may be capable of linking a variety of entities. As an example, and not by way of limitation, the transportation matching system 602 may enable users to interact with each other or other entities, or to allow users to interact with these entities through an application programming interfaces (API) or other communication channels.

In particular embodiments, the transportation matching system 602 may include a variety of servers, sub-systems, programs, modules, logs, and data stores. In particular embodiments, the transportation matching system 602 may include one or more of the following: a web server, action logger, API-request server, relevance-and-ranking engine, content-object classifier, notification controller, action log, third-party-content-object-exposure log, inference module, authorization/privacy server, search module, advertisement-targeting module, user-interface module, user-profile store, connection store, third-party content store, or location store. The transportation matching system 602 may also include suitable components such as network interfaces, security mechanisms, load balancers, failover servers, management-and-network-operations consoles, other suitable components, or any suitable combination thereof. In particular embodiments, the transportation matching system 602 may include one or more user-profile stores for storing user profiles. A user profile may include, for example, biographic information, demographic information, behavioral information, social information, or other types of descriptive information, such as work experience, educational history, hobbies or preferences, interests, affinities, or location.

The web server may include a mail server or other messaging functionality for receiving and routing messages between the transportation matching system 602 and one or more client devices 606. An action logger may be used to receive communications from a web server about a user's actions on or off the transportation matching system 602. In conjunction with the action log, a third-party-content-object log may be maintained of user exposures to third-party-content objects. A notification controller may provide information regarding content objects to a client device 606. Information may be pushed to a client device 606 as notifications, or information may be pulled from the client device 606 responsive to a request received from the client device 606. Authorization servers may be used to enforce one or more privacy settings of the users of the transportation matching system 602. A privacy setting of a user determines how particular information associated with a user can be shared. The authorization server may allow users to opt in to or opt out of having their actions logged by the transportation matching system 602 or shared with other systems, such as, for example, by setting appropriate privacy settings. Third-party-content-object stores may be used to store content objects received from third parties. Location stores may be used for storing location information received from the client devices 606 associated with users.

In addition, the vehicle subsystem 608 can include a human-operated vehicle or an autonomous vehicle. A provider of a human-operated vehicle can perform maneuvers to pick up, transport, and drop off one or more requesters according to the embodiments described herein. In certain embodiments, the vehicle subsystem 608 can include an autonomous vehicle—i.e., a vehicle that does not require a human operator. In these embodiments, the vehicle subsystem 608 can perform maneuvers, communicate, and otherwise function without the aid of a human provider, in accordance with available technology.

In particular embodiments, the vehicle subsystem 608 may include one or more sensors incorporated therein or associated thereto. For example, sensor(s) can be mounted on the top of the vehicle subsystem 608 or else can be located within the interior of the vehicle subsystem 608. In certain embodiments, the sensor(s) can be located in multiple areas at once—i.e., split up throughout the vehicle subsystem 608 so that different components of the sensor(s) can be placed in different locations in accordance with optimal operation of the sensor(s). In these embodiments, the sensor(s) can include a LIDAR sensor and an inertial measurement unit (IMU) including one or more accelerometers, one or more gyroscopes, and one or more magnetometers. The sensor suite can additionally or alternatively include a wireless IMU (WIMU), one or more cameras, one or more microphones, or other sensors or data input devices capable of receiving and/or recording information relating to navigating a route to pick up, transport, and/or drop off a requester.

In particular embodiments, the vehicle subsystem 608 may include a communication device capable of communicating with the client device 606 and/or the transportation matching system 602. For example, the vehicle subsystem 608 can include an on-board computing device communicatively linked to the network 604 to transmit and receive data such as GPS location information, sensor-related information, requester location information, or other relevant information.

In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. Various embodiments and aspects of the invention(s) are described with reference to details discussed herein, and the accompanying drawings illustrate the various embodiments. The description above and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of various embodiments of the present invention.

The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, the methods described herein may be performed with less or more steps/acts or the steps/acts may be performed in differing orders. Additionally, the steps/acts described herein may be repeated or performed in parallel with one another or in parallel with different instances of the same or similar steps/acts. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.

In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. Various embodiments and aspects of the invention(s) are described with reference to details discussed herein, and the accompanying drawings illustrate the various embodiments. The description above and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of various embodiments of the present invention.

The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, the methods described herein may be performed with less or more steps/acts or the steps/acts may be performed in differing orders. Additionally, the steps/acts described herein may be repeated or performed in parallel with one another or in parallel with different instances of the same or similar steps/acts. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope. 

What is claimed is:
 1. A system comprising: one or more memory devices; and one or more computing devices configured to: analyze information associated with one or more vehicles scheduled for service at a vehicle service center comprising a set of sequential stations; determine, based on the information associated with the one or more vehicles, a respective set of tasks for completion at each of the sequential stations in accordance with a predefined progression rate; determine, based on the respective set of tasks, a respective set of components required at each of the sequential stations; and cause the respective set of components to be correspondingly positioned at each of the sequential stations to perform the respective set of tasks in accordance with the predefined progression rate.
 2. The system of claim 1, wherein the set of sequential stations comprises three sequential stations, and wherein the predefined progression rate comprises an amount of time the one or more vehicles spend at each of the three stations.
 3. The system of claim 1, wherein the one or more computing devices are further configured to: determine an estimated time to complete each task of the respective set of tasks; determine an estimated progression rate based on the estimated time to complete each task of the respective set of tasks; and compare the estimated progression rate to the predefined progression rate to determine that the estimated progression rate satisfies the predefined progression rate.
 4. The system of claim 3, wherein the one or more computing devices are further configured to: monitor a completion status of one or more tasks of the respective set of tasks at each station from the set of sequential stations; and update, based on the completion status of the one or more tasks at each station, the estimated progression rate.
 5. The system of claim 4, wherein the one or more computing devices are further configured to: determine that the updated estimated progression rate exceeds the predefined progression rate; and in response to determining that the updated estimated progression rate exceeds the predefined progression rate, modify at least one of the respective set of tasks or the respective set of components.
 6. The system of claim 1, wherein the one or more computing devices are further configured to determine the respective set of tasks based further on discrete hoist heights for performing the respective set of tasks at each station of the set of sequential stations.
 7. The system of claim 1, wherein the one or more computing devices are further configured to: determine an estimated time to complete each task of the respective set of tasks; and customize at least one of the respective set of tasks or the respective set of components based on the estimated time to complete each task of the respective set of tasks.
 8. A non-transitory computer-readable storage medium comprising instructions that, when executed by at least one processor, cause a computer system to: analyze information associated with one or more vehicles scheduled for service at a vehicle service center comprising a set of sequential stations; determine, based on the information associated with the one or more vehicles, a respective set of tasks for completion at each of the sequential stations in accordance with a predefined progression rate; determine, based on the respective set of tasks, a respective set components required at each of the sequential stations; and cause the respective set of components to be correspondingly positioned at each of the sequential stations to perform the respective set of tasks in accordance with the predefined progression rate.
 9. The non-transitory computer-readable storage medium of claim 8, wherein the set of sequential stations comprises three sequential stations, and wherein the predefined progression rate comprises an amount of time the one or more vehicles spend at each of the three stations.
 10. The non-transitory computer-readable storage medium of claim 8, further comprising instructions that, when executed by the at least one processor, cause the computer system to: determine an estimated time to complete each task of the respective set of tasks; determine an estimated progression rate based on the estimated time to complete each task of the respective set of tasks; and compare the estimated progression rate to the predefined progression rate to determine that the estimated progression rate satisfies the predefined progression rate.
 11. The non-transitory computer-readable storage medium of claim 10, further comprising instructions that, when executed by the at least one processor, cause the computer system to: monitor a completion status of one or more tasks of the respective set of tasks at each station from the set of sequential stations; and update, based on the completion status of the one or more tasks at each station, the estimated progression rate.
 12. The non-transitory computer-readable storage medium of claim 11, further comprising instructions that, when executed by the at least one processor, cause the computer system to: determine that the updated estimated progression rate exceeds the predefined progression rate; and in response to determining that the updated estimated progression rate exceeds the predefined progression rate, modify at least one of the respective set of tasks or the respective set of components.
 13. The non-transitory computer-readable storage medium of claim 8, further comprising instructions that, when executed by the at least one processor, cause the computer system to determine the respective set of tasks based further on discrete hoist heights for performing the respective set of tasks at each station of the set of sequential stations.
 14. The non-transitory computer-readable storage medium of claim 8, further comprising instructions that, when executed by the at least one processor, cause the computer system to: determine an estimated time to complete each task of the respective set of tasks; and customize at least one of the respective set of tasks or the respective set of components based on the estimated time to complete each task of the respective set of tasks.
 15. A computer-implemented method comprising: analyzing information associated with one or more vehicles scheduled for service at a vehicle service center comprising a set of sequential stations; determining, based on the information associated with the one or more vehicles, a respective set of tasks for completion at each of the sequential stations in accordance with a predefined progression rate; determining, based on the respective set of tasks, a respective set components required at each of the sequential stations; and causing the respective set of components to be correspondingly positioned at each of the sequential stations to perform the respective set of tasks in accordance with the predefined progression rate.
 16. The computer-implemented method of claim 15, wherein the set of sequential stations comprises three sequential stations, and wherein the predefined progression rate comprises an amount of time the vehicles spend at each of the three stations.
 17. The computer-implemented method of claim 15, further comprising: determining an estimated time to complete each task of the respective set of tasks; determining an estimated progression rate based on the estimated time to complete each task of the respective set of tasks; and comparing the estimated progression rate to the predefined progression rate to determine that the estimated progression rate satisfies the predefined progression rate.
 18. The computer-implemented method of claim 17, further comprising: monitoring a completion status of one or more tasks of the respective set of tasks at each station from the set of sequential stations; and updating, based on the completion status of the one or more tasks at each station, the estimated progression rate.
 19. The computer-implemented method of claim 18, further comprising: determining that the updated estimated progression rate exceeds the predefined progression rate; and in response to determining that the updated estimated progression rate exceeds the predefined progression rate, modifying at least one of the respective set of tasks or the respective set of components.
 20. The computer-implemented method of claim 15, further comprising: determining an estimated time to complete each task of the respective set of tasks; and customizing at least one of the respective set of tasks or the respective set of components based on the estimated time to complete each task of the respective set of tasks. 